_h_a_n_d_l_e_P_t_r A pointer to the returned handle of the demultiplexer.
Used by subsequent calls to identify the demultiplexer.
_h_a_n_d_l_e A handle to the demultiplexer.
_c_o_u_n_t The number of iterations to execute. The amount of
processing done during each iteration is scheme and data
dependent. _c_o_u_n_t may also be specified as
CCCCLLLL____CCCCOOOONNNNTTTTIIIINNNNUUUUOOOOUUUUSSSS____BBBBLLLLOOOOCCCCKKKK or CCCCLLLL____CCCCOOOONNNNTTTTIIIINNNNUUUUOOOOUUUUSSSS____NNNNOOOONNNNBBBBLLLLOOOOCCCCKKKK.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
ccccllllOOOOppppeeeennnnDDDDeeeemmmmuuuuxxxx opens a demultiplexer for a given scheme. It is called
before ccccllllDDDDeeeemmmmuuuuxxxx or any call that requires a demultiplexer handle.
ccccllllCCCClllloooosssseeeeDDDDeeeemmmmuuuuxxxx closes the demultiplexer after which _h_a_n_d_l_e is no longer
valid.
ccccllllDDDDeeeemmmmuuuuxxxx takes no buffer arguments so it always invokes the Implicit
Buffering model (see CLintro(3dm)). An input buffer of type CL_BUF_MUX,
and output buffers of types CL_BUF_VIDEO and CL_BUF_AUDIO, must have been
created previously with ccccllllCCCCrrrreeeeaaaatttteeeeBBBBuuuuffff. The input buffer is filled with
calls to ccccllllQQQQuuuueeeerrrryyyyFFFFrrrreeeeeeee, ccccllllUUUUppppddddaaaatttteeeeHHHHeeeeaaaadddd, and ccccllllDDDDoooonnnneeeeUUUUppppddddaaaattttiiiinnnnggggHHHHeeeeaaaadddd. The output
buffers are emptied with calls to ccccllllQQQQuuuueeeerrrryyyyVVVVaaaalllliiiidddd and ccccllllUUUUppppddddaaaatttteeeeTTTTaaaaiiiillll.
Buffers should be appropriately sized for proper execution of ccccllllDDDDeeeemmmmuuuuxxxx.
The input buffer should have a minimum capacity of CL_MUX_BUFFER_SIZE.
The output buffers should have minimum capacities of CL_VIDEO_BUFFER_SIZE
and CL_AUDIO_BUFFER_SIZE. These parameters may be determined by calling
ccccllllGGGGeeeettttPPPPaaaarrrraaaammmmssss, after first calling ccccllllRRRReeeeaaaaddddHHHHeeeeaaaaddddeeeerrrr to configure the
demultiplexer.
If _c_o_u_n_t is non-negative, ccccllllDDDDeeeemmmmuuuuxxxx attempts to perform _c_o_u_n_t iterations of
the demultiplexing operation. The actual amount of data processed in
each iteration is scheme and data dependent. The call to ccccllllDDDDeeeemmmmuuuuxxxx may
consume up to CL_MUX_BUFFER_SIZE * _c_o_u_n_t bytes of multiplexed data. This
may produce up to CL_VIDEO_BUFFER_SIZE * _c_o_u_n_t bytes of video data, and
up to CL_AUDIO_BUFFER_SIZE * _c_o_u_n_t bytes of audio data. The call does
If _c_o_u_n_t is specified as CL_CONTINUOUS_BLOCK or CL_CONTINUOUS_NONBLOCK
then ccccllllDDDDeeeemmmmuuuuxxxx continues until the input buffer is marked done, or a call
to ccccllllCCCClllloooosssseeeeDDDDeeeemmmmuuuuxxxx is made. CL_CONTINUOUS_NONBLOCK differs from
CL_CONTINUOUS_BLOCK in that the call to ccccllllDDDDeeeemmmmuuuuxxxx returns immediately while
the demultiplexing occurs in a separate thread.
Several demultiplexers can be open simultaneously. _h_a_n_d_l_e identifies
which one is being referenced.
RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEESSSS
Each routine returns a negative error code if the call fails. Upon
success, ccccllllOOOOppppeeeennnnDDDDeeeemmmmuuuuxxxx and ccccllllCCCClllloooosssseeeeDDDDeeeemmmmuuuuxxxx return SUCCESS, and ccccllllDDDDeeeemmmmuuuuxxxx returns
either the count actually processed or, in the case of